package 刷题10月.位运算;
// https://leetcode-cn.com/problems/add-without-plus-lcci/
public class 面试题1701不用加号的加法1002 {
    class Solution {
        public int add(int a, int b) {
            int sum = 0, carry = 0;
            while(b != 0) {
                sum = a ^ b;			// 异或计算未进位的部分
                carry = (a & b) << 1;	// 进位部分
                a = sum;				// 保存未进位部分，再次计算
                b = carry;				// 保存进位部分，再次计算
            }
            return a;	// 最后无进位，异或的结果即加法结果
        }
    }
}
